import request from '@/config/axios'

// 表单管理 VO
export interface FormVO {
  id: number // 主键id
  dfName: string // 表单名称
  dfDescription: string // 描述
  dfRemark: string // 页面说明
  dfDesign: string // 填报页设计json
  dfConf: string // 填报页设计json
  dfFields: string[] // 填报页设计json
  dfSortNum: number // 排序号
  dfStatus: number // 状态
  dfParentId: number // 父id
  dfReleaseStatus: number // 表单发布状态
  dfReleaseVersion: number // 发布版本号
}
export interface FormTaskFillVO {
  id: number // 主键id
  dffTaskId: number // 任务id
  dffFormId: number // 表单id
  dffFillData: string // 填报数据
  dffFillWay: number // 填报方式
  dffFillStatus: number // 填报状态
  dffFormVersion: number // 表单版本
  dffFillUserId: number // 填表人id
  dffFillVersion: number // 填报版本
  dfConf: string // 填报页设计json
  dfFields: string[] // 填报页设计json
}

// 表单管理 API
export const FormApi = {
  // 查询表单管理分页
  getFormPage: async (params: any) => {
    return await request.get({ url: `/system/form/page`, params })
  },

  // 查询表单管理详情
  getForm: async (id: number) => {
    return await request.get({ url: `/system/form/get?id=` + id })
  },

  // 新增表单管理
  createForm: async (data: FormVO) => {
    return await request.post({ url: `/system/form/create`, data })
  },

  // 修改表单管理
  updateForm: async (data: FormVO) => {
    return await request.put({ url: `/system/form/update`, data })
  },

  // 删除表单管理
  deleteForm: async (id: number) => {
    return await request.delete({ url: `/system/form/delete?id=` + id })
  },

  // 导出表单管理 Excel
  exportForm: async (params) => {
    return await request.download({ url: `/system/form/export-excel`, params })
  },

  // 发布表单管理
  releaseForm: async (id: number) => {
    return await request.delete({ url: `/system/form/release?id=` + id })
  },

  // 撤回表单管理
  revokeForm: async (id: number) => {
    return await request.delete({ url: `/system/form/revoke?id=` + id })
  },

  // 获取表单精简信息列表
  getSimpleFormList: async (): Promise<FormVO[]> => {
    return request.get({ url: '/system/form/simple-list' })
  }, 

  // 新增表单管理
  submitFill: async (data: FormTaskFillVO) => {
    return await request.post({ url: `/system/form/submitFill`, data })
  },

  // 获取表单精简信息列表
  getFormList: async (id: number): Promise<FormVO[]> => {
    return request.get({ url: '/system/form/getFormList?id=' + id })
  },

  // 查询表单任务填报数据分页
  getTaskFillPage: async (params: any) => {
    return await request.get({ url: `/system/form/getTaskFillPage`, params })
  },

  // 查询表单管理详情
  getFormTaskFill: async (taskId: number, formId: number) => {
    return await request.get({ url: `/system/form/getFormTaskFill?taskId=` + taskId + `&formId=` + formId })
  },

  // 查询表单任务填报数据分页
  getAllTaskFillPage: async (params: any) => {
    return await request.get({ url: `/system/form/getAllTaskFillPage`, params })
  }

}
